//package com.mccken.demo.maiwei;
//
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Map;
//import java.util.concurrent.ConcurrentSkipListMap;
//
//import com.alicp.jetcache.Cache;
//import com.alicp.jetcache.anno.CreateCache;
//import com.alicp.jetcache.embedded.CaffeineCacheBuilder;
//
//public class PartyCommentService {
//
//	// 使用复合数据结构并设置整体缓存大小
//	private Cache<Long, ConcurrentSkipListMap<Long, List<MessageDTO>>> commentCache = CaffeineCacheBuilder.createCaffeineCacheBuilder().buildCache();
//
//	private int totalMessageDTOCount = 0;
//
//	// 添加评论到缓存并设置5秒过期，同时确保总MessageDTO数量不超过10w条
//	public void addComment(Long partyId, Long timestamp, MessageDTO MessageDTO) {
//		synchronized (this) { // 确保线程安全
//			if (totalMessageDTOCount >= 100000) {
//				// 淘汰策略：移除最早添加的派对ID下的部分评论，直到总数量低于10w
//				Map.Entry<Long, ConcurrentSkipListMap<Long, List<MessageDTO>>> oldestEntry = commentCache.peek();
//				while (totalMessageDTOCount >= 100000) {
//					for (Map.Entry<Long, List<MessageDTO>> timestampEntry : oldestEntry.getValue().entrySet()) {
//						List<MessageDTO> MessageDTOsToRemove = timestampEntry.getValue();
//						int toRemoveCount = Math.min(MessageDTOsToRemove.size(), totalMessageDTOCount - 99999);
//						MessageDTOsToRemove.subList(0, toRemoveCount).clear();
//						totalMessageDTOCount -= toRemoveCount;
//						if (totalMessageDTOCount < 100000) {
//							break;
//						}
//					}
//					if (totalMessageDTOCount >= 100000 && !oldestEntry.getValue().isEmpty()) {
//						commentCache.remove(oldestEntry.getKey());
//					}
//				}
//			}
//
//			ConcurrentSkipListMap<Long, List<MessageDTO>> partyComments = commentCache.get(partyId);
//			if (partyComments == null) {
//				partyComments = new ConcurrentSkipListMap<>();
//			}
//
//			List<MessageDTO> MessageDTOsAtTimestamp = partyComments.computeIfAbsent(timestamp, k -> new ArrayList<>());
//			MessageDTOsAtTimestamp.add(MessageDTO);
//			totalMessageDTOCount++;
//
//			commentCache.put(partyId, partyComments);
//		}
//	}
//
//	// ... 其他代码
//}